package com.jy.rhin.infra.cda;


import com.jy.rhin.parse.NoneSelector;
import com.jy.rhin.parse.Selector;

import java.lang.annotation.*;

/**
 * @Author 姚俊
 * @Date 2023/2/10 16:00
 * @Description XML注解
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.FIELD})
public @interface XPath {
    //取值路径
    String path();

    String model() default "direct";    //取值方式 direct 直接根据配置路径取值 code 先定位到具体的代码节点 再取值

    //如果取值方式是code 则需要配置
    String codePath() default "";

    //列表项分隔路径
    String listItemPath() default "";

    //列表项回退层数
    int listItemBackLevel() default 4;

    //列表元素解析器
    Class<? extends Selector> itemParser() default NoneSelector.class;

    XValid xValid() default @XValid();    //验证器
}
